package com.meatball.websocket

import jakarta.websocket.Session
import jakarta.websocket.server.ServerEndpoint
import org.springframework.stereotype.Component
import java.util.concurrent.CopyOnWriteArraySet

@Component
@ServerEndpoint("/websocket/{clientId}")
class WebSocketOperate {
    lateinit var session: Session

    /**
     * concurrent包的线程安全Set，用来存放每个客户端对应的MyWebSocket对象
     * 虽然@Component默认是单例模式的，但springboot还是会为每个websocket连接初始化一个bean，所以可以用一个静态set保存起来。
     */
    val webSockets: CopyOnWriteArraySet<WebSocketOperate> = CopyOnWriteArraySet()

    /**
     * 用来存在线连接数
     */
    val sessionPool: Map<String, Session> = HashMap()
}